package com.xbongbong.paas.service;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.pojo.vo.ContractCompareVO;
import com.xbongbong.paas.pojo.vo.SearchDataInConditionVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.cabinetfile.pojo.vo.CabinetFileListGetVO;
import com.xbongbong.pro.contractCompare.pojo.dto.CheckCanLocalUploadDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareConditionDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareConsumptionDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareFileSelectDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareGetMoreSumDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareHistoryCompareDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareListDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareOrderDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareRefusedFileSelectDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareUpdateStaffDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareUrlDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractCompareUserDTO;
import com.xbongbong.pro.contractCompare.pojo.dto.ContractDataListDTO;
import com.xbongbong.pro.contractCompare.pojo.vo.ContractCompareConsumptionVO;
import com.xbongbong.pro.contractCompare.pojo.vo.ContractCompareMsgVO;
import com.xbongbong.pro.contractCompare.pojo.vo.ContractCompareOrderVO;
import com.xbongbong.pro.contractCompare.pojo.vo.ContractCompareUserListVO;
import com.xbongbong.pro.contractCompare.pojo.vo.ContractDataListVO;
import com.xbongbong.pro.menu.pojo.dto.MenuInitDTO;

/**
    * @description: 合同比对service
    * @return
    * @author zhushuainan
    * @date 2022/11/17 15:26:03
    */
public interface ContractCompareService {

    /**
     * 初始化菜单
     */
    BaseVO initContractCompare(MenuInitDTO menuInitDTO) throws XbbException;
    /**
     *获取坐席列表
     */
    ContractCompareUserListVO getDepUserList(ContractCompareUserDTO contractCompareUserDTO) throws XbbException;
    /**
     *批量设置坐席
     */
    ContractCompareMsgVO batchUpdateStaff(ContractCompareUpdateStaffDTO contractCompareUpdateStaffDTO) throws XbbException;



    ContractCompareVO list(ContractCompareListDTO contractCompareListDTO) throws XbbException;

    SearchDataInConditionVO conditionList(ContractCompareConditionDTO contractCompareConditionDTO) throws XbbException;

    JSONObject startCompare(ContractCompareDTO contractCompareDTO) throws XbbException;

    CabinetFileListGetVO fileSelect(ContractCompareFileSelectDTO contractCompareFileSelectDTO) throws XbbException;

    /**
     * 1.工作流设置获取
     *  1.1 附件字段权限判断
     * 2.获取文件
     * @param refusedFileSelectDTO
     * @return
     * @throws XbbException
     */
    CabinetFileListGetVO getRefusedfile(ContractCompareRefusedFileSelectDTO refusedFileSelectDTO) throws XbbException;

    JSONObject checkCanLocalUpload(CheckCanLocalUploadDTO contractCompareLocalUploadDTO) throws XbbException;

    ContractCompareVO historyCompare(ContractCompareHistoryCompareDTO contractCompareHistoryCompareDTO) throws XbbException;

    /**
     *获取用量
     */
    ContractCompareConsumptionVO getConsumption(ContractCompareConsumptionDTO contractCompareConsumptionDTO) throws XbbException;
    /**
     *获取订单信息
     */
    ContractCompareOrderVO getOrderInfo(ContractCompareOrderDTO contractCompareOrderDTO) throws XbbException;
    /**
     * 获取更多对比次数
     */
    ContractCompareMsgVO getMoreCompareNum(ContractCompareGetMoreSumDTO contractCompareGetMoreSumDTO) throws XbbException;
    /**
     * 获取合同列表
     */
    ContractDataListVO getContractDataList(ContractDataListDTO contractDataListDTO) throws XbbException;

    /**
     * 获取合同比对三方url
     * @param contractCompareUrlDTO
     * @return
     * @throws XbbException
     */
    JSONObject getContractCompareResultUrl(ContractCompareUrlDTO contractCompareUrlDTO) throws XbbException;

}
